]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/ngircd/conn.c
Implement WEBIRC command
[ngircd-alex.git] / src / ngircd / conn.c
index e82b717a4147ae9bd449f7c01f23628791eb5bcb..cd350a8d619700a2ca89034b5a05b132df6cba36 100644 (file)
@@ -1877,12 +1877,13 @@ Init_Socket( int Sock )
        }
 
        /* Set type of service (TOS) */
-#if defined(IP_TOS) && defined(IPTOS_LOWDELAY)
+#if defined(IPPROTO_IP) && defined(IPTOS_LOWDELAY)
        value = IPTOS_LOWDELAY;
-       LogDebug("Setting option IP_TOS on socket %d to IPTOS_LOWDELAY (%d).", Sock, value );
-       if( setsockopt( Sock, SOL_IP, IP_TOS, &value, (socklen_t)sizeof( value )) != 0 )
-       {
-               Log( LOG_ERR, "Can't set socket option IP_TOS: %s!", strerror( errno ));
+       LogDebug("Setting IP_TOS on socket %d to IPTOS_LOWDELAY.", Sock);
+       if (setsockopt(Sock, IPPROTO_IP, IP_TOS, &value,
+                      (socklen_t) sizeof(value))) {
+               Log(LOG_ERR, "Can't set socket option IP_TOS: %s!",
+                   strerror(errno));
                /* ignore this error */
        }
 #endif
@@ -1998,10 +1999,14 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
        c = Conn_GetClient( i );
        assert( c != NULL );
 
-       /* Only update client information of unregistered clients */
-       if( Client_Type( c ) == CLIENT_UNKNOWN ) {
-               strlcpy(My_Connections[i].host, readbuf, sizeof( My_Connections[i].host));
-               Client_SetHostname( c, readbuf);
+       /* Only update client information of unregistered clients.
+        * Note: user commands (e. g. WEBIRC) are always read _after_ reading
+        * the resolver results, so we don't have to worry to override settings
+        * from these commands here. */
+       if(Client_Type(c) == CLIENT_UNKNOWN) {
+               strlcpy(My_Connections[i].host, readbuf,
+                       sizeof(My_Connections[i].host));
+               Client_SetHostname(c, readbuf);
 #ifdef IDENTAUTH
                ++identptr;
                if (*identptr) {