]> arthur.barton.de Git - netatalk.git/blobdiff - etc/atalkd/zip.c
Wrong path from 2-1
[netatalk.git] / etc / atalkd / zip.c
index 9012641ebbc8343d8b21092c05329b423000d440..23d8188dd9d053b242b958cf0f971d0b4f97cfab 100644 (file)
@@ -1,16 +1,27 @@
 /*
+ * $Id: zip.c,v 1.15 2009-12-13 00:31:50 didg Exp $
+ *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved. See COPYRIGHT.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
 #include <sys/param.h>
 #include <sys/types.h>
-#include <sys/syslog.h>
+#include <atalk/logger.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <sys/time.h>
+#ifdef TRU64
+#include <sys/mbuf.h>
+#include <net/route.h>
+#endif /* TRU64 */
 #include <net/if.h>
 #include <net/route.h>
 #include <netatalk/endian.h>
@@ -18,7 +29,7 @@
 
 #ifdef __svr4__
 #include <sys/sockio.h>
-#endif __svr4__
+#endif /* __svr4__ */
 
 #include <atalk/ddp.h>
 #include <atalk/zip.h>
 #include "rtmp.h"
 #include "list.h"
 #include "multicast.h"
+#include "main.h"
 
 struct ziptab  *ziptab = NULL, *ziplast = NULL;
 
-static int zonecheck( rtmp, iface )
-    struct rtmptab     *rtmp;
-    struct interface   *iface;
+
+static int zonecheck(struct rtmptab *rtmp, struct interface *iface)
 {
     struct list                *l;
     struct ziptab      *czt, *zt;
@@ -55,8 +66,8 @@ static int zonecheck( rtmp, iface )
                break;
            }
        }
-       if ( l == 0 ) {
-           syslog( LOG_ERR, "zonecheck: %.*s not in zone list", czt->zt_len,
+       if ( l == NULL ) {
+           LOG(log_error, logtype_atalkd, "zonecheck: %.*s not in zone list", czt->zt_len,
                    czt->zt_name );
            return( -1 );       /* configured zone not found in net zones */
        }
@@ -66,7 +77,7 @@ static int zonecheck( rtmp, iface )
        ;
 
     if ( cztcnt != ztcnt ) {
-       syslog( LOG_ERR, "zonecheck: %d configured zones, %d zones found",
+       LOG(log_error, logtype_atalkd, "zonecheck: %d configured zones, %d zones found",
                cztcnt, ztcnt );
        return( -1 );           /* more net zones than configured zones */
     }
@@ -75,29 +86,25 @@ static int zonecheck( rtmp, iface )
 }
 
 
-int zip_packet( ap, from, data, len )
-    struct atport      *ap;
-    struct sockaddr_at *from;
-    char               *data;
-    int                        len;
+int zip_packet(struct atport *ap,struct sockaddr_at *from, char *data, int len)
 {
     struct ziphdr      zh;
     struct atphdr      ah;
     struct interface   *iface;
     struct gate                *gate;
-    struct rtmptab     *rtmp;
+    struct rtmptab     *rtmp = NULL;
     struct list                *l;
     struct ziptab      *zt;
     u_short            firstnet, lastnet, index, nz;
     char               *end, zname[ 32 ], packet[ ATP_BUFSIZ ], *nzones, *lastflag;
     char               *reply, *rend, *ziphdr;
     int                        zlen, n, zipop, rcnt, qcnt, zcnt, zsz;
-    extern int         debug, stabletimer;
+    extern int         stabletimer;
 
     end = data + len;
 
     if ( data >= end ) {
-       syslog( LOG_INFO, "zip_packet malformed packet" );
+       LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
        return 1;
     }
 
@@ -107,7 +114,7 @@ int zip_packet( ap, from, data, len )
     switch( *data++ ) {
     case DDPTYPE_ZIP :
        if ( data + sizeof( struct ziphdr ) > end ) {
-           syslog( LOG_INFO, "zip_packet malformed packet" );
+           LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
            return 1;
        }
        memcpy( &zh, data, sizeof( struct ziphdr ));
@@ -143,7 +150,7 @@ int zip_packet( ap, from, data, len )
                        break;
                    }
                }
-               if ( rtmp == 0 ) {
+               if ( rtmp == NULL ) {
                    continue;
                }
 
@@ -169,7 +176,8 @@ int zip_packet( ap, from, data, len )
                        if ( sendto( ap->ap_fd, packet, reply - packet, 0,
                                (struct sockaddr *)from,
                                sizeof( struct sockaddr_at )) < 0 ) {
-                           syslog( LOG_ERR, "zip reply sendto: %m" );
+                           LOG(log_error, logtype_atalkd, "zip reply sendto: %s",
+                                   strerror(errno) );
                        }
 
                        reply = packet + 3;
@@ -188,7 +196,8 @@ int zip_packet( ap, from, data, len )
                                if ( sendto( ap->ap_fd, packet, reply - packet,
                                        0, (struct sockaddr *)from,
                                        sizeof( struct sockaddr_at )) < 0 ) {
-                                   syslog( LOG_ERR, "zip reply sendto: %m" );
+                                   LOG(log_error, logtype_atalkd, "zip reply sendto: %s",
+                                           strerror(errno) );
                                }
 
                                reply = packet + 3;
@@ -209,7 +218,8 @@ int zip_packet( ap, from, data, len )
                            if ( sendto( ap->ap_fd, packet, reply - packet, 0,
                                    (struct sockaddr *)from,
                                    sizeof( struct sockaddr_at )) < 0 ) {
-                               syslog( LOG_ERR, "zip reply sendto: %m" );
+                               LOG(log_error, logtype_atalkd, "zip reply sendto: %s",
+                                       strerror(errno) );
                            }
 
                            reply = packet + 3;
@@ -236,7 +246,8 @@ int zip_packet( ap, from, data, len )
                if ( sendto( ap->ap_fd, packet, reply - packet, 0,
                        (struct sockaddr *)from,
                        sizeof( struct sockaddr_at )) < 0 ) {
-                   syslog( LOG_ERR, "zip reply sendto: %m" );
+                   LOG(log_error, logtype_atalkd, "zip reply sendto: %s",
+                           strerror(errno) );
                }
            }
            break;
@@ -250,7 +261,7 @@ int zip_packet( ap, from, data, len )
                }
            }
            if ( gate == NULL ) {
-               syslog( LOG_INFO, "zip reply from non-gateway %u.%u", 
+               LOG(log_info, logtype_atalkd, "zip reply from non-gateway %u.%u", 
                    ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
                return 1;
            }
@@ -259,7 +270,7 @@ int zip_packet( ap, from, data, len )
 
            do {
                if ( data + sizeof( u_short ) + 1 > end ) {     /* + strlen */
-                   syslog( LOG_INFO, "zip reply short (%d)", len );
+                   LOG(log_info, logtype_atalkd, "zip reply short (%d)", len );
                    return 1;
                }
                memcpy( &firstnet, data, sizeof( u_short ));
@@ -269,7 +280,7 @@ int zip_packet( ap, from, data, len )
                    /* XXX */
                    if ( rtmp->rt_gate == NULL &&
                            zonecheck( rtmp, gate->g_iface ) != 0 ) {
-                       syslog( LOG_ERR, "zip_packet seed zonelist mismatch" );
+                       LOG(log_error, logtype_atalkd, "zip_packet seed zonelist mismatch" );
                        return -1;
                    }
                    rtmp->rt_flags &= ~RTMPTAB_ZIPQUERY;
@@ -288,20 +299,20 @@ int zip_packet( ap, from, data, len )
                    /*
                     * Update head to this rtmp entry.
                     */
-                   if ( rtmp != 0 && gate->g_rt != rtmp ) {
+                   if ( rtmp != NULL && gate->g_rt != rtmp ) {
                        gate->g_rt->rt_prev->rt_next = gate->g_rt;
                        gate->g_rt = rtmp;
-                       rtmp->rt_prev->rt_next = 0;
+                       rtmp->rt_prev->rt_next = NULL;
                    }
                }
 
                zlen = *data++;
                if ( zlen > 32 || zlen <= 0 ) {
-                   syslog( LOG_INFO, "zip reply bad packet" );
+                   LOG(log_info, logtype_atalkd, "zip reply bad packet" );
                    return 1;
                }
                if ( data + zlen > end ) {
-                   syslog( LOG_INFO, "zip reply short (%d)", len );
+                   LOG(log_info, logtype_atalkd, "zip reply short (%d)", len );
                    return 1;
                }
                memcpy( zname, data, zlen );
@@ -311,8 +322,8 @@ int zip_packet( ap, from, data, len )
                 * We won't find any rtmp entry if the gateway is no longer
                 * telling us about the entry.
                 */
-               if ( rtmp == 0 ) {
-                   syslog( LOG_INFO, "zip skip reply %u from %u.%u (no rtmp)",
+               if ( rtmp == NULL ) {
+                   LOG(log_info, logtype_atalkd, "zip skip reply %u from %u.%u (no rtmp)",
                            ntohs( firstnet ), ntohs( from->sat_addr.s_net ),
                            from->sat_addr.s_node );
                /*
@@ -320,7 +331,7 @@ int zip_packet( ap, from, data, len )
                 * no good if rtmp is the interface's route).
                 */
                } else if ( rtmp->rt_iprev == NULL && rtmp->rt_prev != NULL ) {
-                   syslog( LOG_INFO,
+                   LOG(log_info, logtype_atalkd,
                            "zip skip reply %u-%u from %u.%u (rtmp not in use)",
                            ntohs( rtmp->rt_firstnet ),
                            ntohs( rtmp->rt_lastnet ),
@@ -332,7 +343,7 @@ int zip_packet( ap, from, data, len )
                 * net to verify our interface's zone(s).
                 */
                } else if (( rtmp->rt_flags & RTMPTAB_ZIPQUERY ) == 0 ) {
-                   syslog( LOG_INFO,
+                   LOG(log_info, logtype_atalkd,
                            "zip skip reply %u-%u from %u.%u (no query)",
                            ntohs( rtmp->rt_firstnet ),
                            ntohs( rtmp->rt_lastnet ),
@@ -340,7 +351,7 @@ int zip_packet( ap, from, data, len )
                            from->sat_addr.s_node );
                } else {
                    if (addzone( rtmp, zlen, zname ) < 0) {
-                       syslog(LOG_ERR, "zip_packet: addzone");
+                       LOG(log_error, logtype_atalkd, "zip_packet: addzone");
                        return -1;
                    }
                    rtmp->rt_flags |= RTMPTAB_HASZONES;
@@ -349,9 +360,9 @@ int zip_packet( ap, from, data, len )
 
            if ( rtmp && rtmp->rt_flags & RTMPTAB_HASZONES ) {
                /* XXX */
-               if ( rtmp->rt_gate == 0 &&
+               if ( rtmp->rt_gate == NULL &&
                        zonecheck( rtmp, gate->g_iface ) != 0 ) {
-                   syslog( LOG_ERR, "zip_packet seed zonelist mismatch" );
+                   LOG(log_error, logtype_atalkd, "zip_packet seed zonelist mismatch" );
                    return -1;
                }
                rtmp->rt_flags &= ~RTMPTAB_ZIPQUERY;
@@ -367,7 +378,7 @@ int zip_packet( ap, from, data, len )
                }
            }
            if ( gate == NULL ) {
-               syslog( LOG_INFO, "zip ereply from non-gateway %u.%u", 
+               LOG(log_info, logtype_atalkd, "zip ereply from non-gateway %u.%u", 
                    ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
                return 1;
            }
@@ -377,7 +388,7 @@ int zip_packet( ap, from, data, len )
             * at the top of the do-while loop, below.
             */
            if ( data + sizeof( u_short ) + 1 > end ) { /* + strlen */
-               syslog( LOG_INFO, "zip ereply short (%d)", len );
+               LOG(log_info, logtype_atalkd, "zip ereply short (%d)", len );
                return 1;
            }
            memcpy( &firstnet, data, sizeof( u_short ));
@@ -392,13 +403,13 @@ int zip_packet( ap, from, data, len )
                    }
                }
                if ( rtmp == NULL ) {
-                   syslog( LOG_INFO, "zip ereply %u from %u.%u (no rtmp)",
+                   LOG(log_info, logtype_atalkd, "zip ereply %u from %u.%u (no rtmp)",
                            ntohs( firstnet ), ntohs( from->sat_addr.s_net ),
                            from->sat_addr.s_node );
                    return 1;
                }
-               if ( rtmp->rt_iprev == 0 ) {
-                   syslog( LOG_INFO,
+               if ( rtmp->rt_iprev == NULL ) {
+                   LOG(log_info, logtype_atalkd,
                            "zip ereply %u-%u from %u.%u (rtmp not in use)",
                            ntohs( rtmp->rt_firstnet ),
                            ntohs( rtmp->rt_lastnet ),
@@ -407,15 +418,15 @@ int zip_packet( ap, from, data, len )
                }
 
                /* update head to *next* rtmp entry */
-               if ( rtmp->rt_next != 0 ) {
+               if ( rtmp->rt_next != NULL ) {
                    gate->g_rt->rt_prev->rt_next = gate->g_rt;
                    gate->g_rt = rtmp->rt_next;
-                   rtmp->rt_next = 0;
+                   rtmp->rt_next = NULL;
                }
            }
 
            if (( rtmp->rt_flags & RTMPTAB_ZIPQUERY ) == 0 ) {
-               syslog( LOG_INFO, "zip ereply %u-%u from %u.%u (no query)",
+               LOG(log_info, logtype_atalkd, "zip ereply %u-%u from %u.%u (no query)",
                        ntohs( rtmp->rt_firstnet ),
                        ntohs( rtmp->rt_lastnet ),
                        ntohs( from->sat_addr.s_net ),
@@ -429,7 +440,7 @@ int zip_packet( ap, from, data, len )
                 * a big deal, and it makes the end condition cleaner.
                 */
                if ( data + sizeof( u_short ) + 1 > end ) {     /* + strlen */
-                   syslog( LOG_INFO, "zip ereply short (%d)", len );
+                   LOG(log_info, logtype_atalkd, "zip ereply short (%d)", len );
                    return 1;
                }
                memcpy( &firstnet, data, sizeof( u_short ));
@@ -437,23 +448,23 @@ int zip_packet( ap, from, data, len )
 
                /* check route */
                if ( firstnet != rtmp->rt_firstnet ) {
-                   syslog( LOG_INFO, "zip ereply with multiple nets" );
+                   LOG(log_info, logtype_atalkd, "zip ereply with multiple nets" );
                    return 1;
                }
 
                zlen = *data++;
                if ( zlen > 32 || zlen <= 0 ) {
-                   syslog( LOG_INFO, "zip ereply bad zone length (%d)", zlen );
+                   LOG(log_info, logtype_atalkd, "zip ereply bad zone length (%d)", zlen );
                    return 1;
                }
                if ( data + zlen > end ) {
-                   syslog( LOG_INFO, "zip ereply short (%d)", len );
+                   LOG(log_info, logtype_atalkd, "zip ereply short (%d)", len );
                    return 1;
                }
                memcpy( zname, data, zlen );
                data += zlen;
                if (addzone( rtmp, zlen, zname ) < 0) {
-                   syslog(LOG_ERR, "zip_packet: addzone");
+                   LOG(log_error, logtype_atalkd, "zip_packet: addzone");
                    return -1;
                }
            } while ( data < end );
@@ -467,9 +478,9 @@ int zip_packet( ap, from, data, len )
                if ( n == zh.zh_count ) {
                    rtmp->rt_flags |= RTMPTAB_HASZONES;
                    /* XXX */
-                   if ( rtmp->rt_gate == 0 &&
+                   if ( rtmp->rt_gate == NULL &&
                            zonecheck( rtmp, gate->g_iface ) != 0 ) {
-                       syslog( LOG_ERR, "zip_packet seed zonelist mismatch" );
+                       LOG(log_error, logtype_atalkd, "zip_packet seed zonelist mismatch" );
                        return -1;
                    }
                    rtmp->rt_flags &= ~RTMPTAB_ZIPQUERY;
@@ -482,13 +493,13 @@ int zip_packet( ap, from, data, len )
             * Don't answer with bogus information.
             */
            if (((iface->i_flags & IFACE_ISROUTER) == 0) ||
-               iface->i_rt->rt_zt == 0 ||
+               iface->i_rt->rt_zt == NULL ||
                ( iface->i_flags & IFACE_CONFIG ) == 0 ) {
                return 0;
            }
 
            if ( zh.zh_zero != 0 || data + 2 * sizeof( u_short ) > end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
 
@@ -497,13 +508,13 @@ int zip_packet( ap, from, data, len )
            memcpy( &lastnet, data, sizeof( u_short ));
            data += sizeof( u_short );
            if ( firstnet != 0 || lastnet != 0 || data >= end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
 
            zlen = *data++;
            if ( zlen < 0 || zlen > 32 ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
            memcpy( zname, data, zlen );
@@ -538,7 +549,7 @@ int zip_packet( ap, from, data, len )
                    break;
                }
            }
-           if ( l == 0 ) {
+           if ( l == NULL ) {
                zt = (struct ziptab *)iface->i_rt->rt_zt->l_data;
                zh.zh_flags |= ZIPGNI_INVALID;
            }
@@ -552,7 +563,7 @@ int zip_packet( ap, from, data, len )
            /* multicast */
            *data++ = 6;        /* sizeof ??? */
            if (zone_bcast(zt) < 0) {
-             syslog(LOG_ERR, "zip_packet: zone_bcast");
+             LOG(log_error, logtype_atalkd, "zip_packet: zone_bcast");
              return -1;
            }
            memcpy(data, zt->zt_bcast, 6);
@@ -586,8 +597,9 @@ int zip_packet( ap, from, data, len )
            if ( sendto( ap->ap_fd, packet, data - packet, 0,
                    (struct sockaddr *)from,
                    sizeof( struct sockaddr_at )) < 0 ) {
-               syslog( LOG_ERR, "zip gni sendto %u.%u: %m",
-                       ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
+               LOG(log_error, logtype_atalkd, "zip gni sendto %u.%u: %s",
+                       ntohs( from->sat_addr.s_net ), from->sat_addr.s_node,
+                       strerror(errno) );
                return 1;
            }
            break;
@@ -596,18 +608,18 @@ int zip_packet( ap, from, data, len )
            /*
             * Ignore ZIP GNIReplys which are either late or unsolicited.
             */
-           syslog( LOG_DEBUG, "zip gnireply from %u.%u (%s %x)",
+           LOG(log_debug, logtype_atalkd, "zip gnireply from %u.%u (%s %x)",
                    ntohs( from->sat_addr.s_net ), from->sat_addr.s_node,
                    iface->i_name, iface->i_flags );
 
            if (( iface->i_flags & ( IFACE_CONFIG|IFACE_PHASE1 )) ||
                    ( iface->i_flags & IFACE_ADDR ) == 0 ) {
-               syslog( LOG_DEBUG, "zip ignoring gnireply" );
+               LOG(log_debug, logtype_atalkd, "zip ignoring gnireply" );
                return 1;
            }
 
            if ( data + 2 * sizeof( u_short ) > end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
            memcpy( &firstnet, data, sizeof( u_short ));
@@ -620,23 +632,23 @@ int zip_packet( ap, from, data, len )
             * default zone is.
             */
            if ( data >= end || data + *data > end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
            if ( *data++ != 0 ) {
-               syslog( LOG_INFO, "zip_packet unsolicited zone" );
+               LOG(log_info, logtype_atalkd, "zip_packet unsolicited zone" );
                return 1;
            }
 
            /* skip multicast (should really check it) */
            if ( data >= end || data + *data > end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
            data += *data + 1;
 
            if ( data >= end || data + *data > end ) {
-               syslog( LOG_INFO, "zip_packet malformed packet" );
+               LOG(log_info, logtype_atalkd, "zip_packet malformed packet" );
                return 1;
            }
 
@@ -647,22 +659,22 @@ int zip_packet( ap, from, data, len )
             * interface structure, not in the zone table.  This allows us
             * to check that the net is giving us good zones.
             */
-           if ( iface->i_flags & IFACE_SEED ) {
+           if ( (iface->i_flags & IFACE_SEED) && iface->i_czt) {
                if ( iface->i_czt->zt_len != *data ||
                        strndiacasecmp( iface->i_czt->zt_name,
                        data + 1, *data ) != 0 ) {
-                   syslog( LOG_ERR, "default zone mismatch on %s",
+                   LOG(log_error, logtype_atalkd, "default zone mismatch on %s",
                            iface->i_name );
-                   syslog( LOG_ERR, "%.*s != %.*s",
+                   LOG(log_error, logtype_atalkd, "%.*s != %.*s",
                            iface->i_czt->zt_len, iface->i_czt->zt_name,
                            *data, data + 1 );
-                   syslog( LOG_ERR, "Seed error! Exiting!" );
+                   LOG(log_error, logtype_atalkd, "Seed error! Exiting!" );
                    return -1;
                }
            }
 
            if (addzone( iface->i_rt, *data, data + 1 ) < 0) {
-               syslog(LOG_ERR, "zip_packet: addzone");
+               LOG(log_error, logtype_atalkd, "zip_packet: addzone");
                return -1;
            }
            
@@ -674,13 +686,13 @@ int zip_packet( ap, from, data, len )
            if ( firstnet != iface->i_rt->rt_firstnet ||
                    lastnet != iface->i_rt->rt_lastnet ) {
                if ( iface->i_flags & IFACE_SEED ) {
-                   syslog( LOG_ERR, "netrange mismatch on %s",
+                   LOG(log_error, logtype_atalkd, "netrange mismatch on %s",
                            iface->i_name );
-                   syslog( LOG_ERR, "%u-%u != %u-%u",
+                   LOG(log_error, logtype_atalkd, "%u-%u != %u-%u",
                            ntohs( firstnet ), ntohs( lastnet ),
                            ntohs( iface->i_rt->rt_firstnet ),
                            ntohs( iface->i_rt->rt_lastnet ));
-                   syslog( LOG_ERR, "Seed error! Exiting!" );
+                   LOG(log_error, logtype_atalkd, "Seed error! Exiting!" );
                    return -1;
                }
 
@@ -709,14 +721,15 @@ int zip_packet( ap, from, data, len )
 
            /* add addr to loopback route */
            if ( looproute( iface, RTMP_ADD )) { /* -1 or 1 */
-               syslog( LOG_ERR,
-                       "zip_packet: can't route %u.%u to loopback: %m",
+               LOG(log_error, logtype_atalkd,
+                       "zip_packet: can't route %u.%u to loopback: %s",
                        ntohs( iface->i_addr.sat_addr.s_net ),
-                       iface->i_addr.sat_addr.s_node );
+                       iface->i_addr.sat_addr.s_node,
+                       strerror(errno) );
                return -1;
            }
 
-           syslog( LOG_INFO, "zip_packet configured %s from %u.%u",
+           LOG(log_info, logtype_atalkd, "zip_packet configured %s from %u.%u",
                    iface->i_name, ntohs( from->sat_addr.s_net ),
                    from->sat_addr.s_node );
            iface->i_flags |= IFACE_CONFIG;
@@ -730,29 +743,29 @@ int zip_packet( ap, from, data, len )
 #ifdef DEBUG
            printf( "zip notify from %u.%u\n", ntohs( from->sat_addr.s_net ),
                    from->sat_addr.s_node );
-#endif DEBUG
+#endif /* DEBUG */
            break;
 
        default :
-           syslog( LOG_INFO, "zip_packet bad zip op from %u.%u\n",
+           LOG(log_info, logtype_atalkd, "zip_packet bad zip op from %u.%u",
                    ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
        }
        break;
 
     case DDPTYPE_ATP :
        if ( data + sizeof( struct atphdr ) > end ) {
-           syslog( LOG_INFO, "zip atp malformed packet" );
+           LOG(log_info, logtype_atalkd, "zip atp malformed packet" );
            return 1;
        }
        memcpy( &ah, data, sizeof( struct atphdr ));
        data += sizeof( struct atphdr );
        if ( ah.atphd_ctrlinfo != ATP_TREQ ) {
-           syslog( LOG_INFO, "zip atp bad control" );
+           LOG(log_info, logtype_atalkd, "zip atp bad control" );
            return 1;
        }
        ah.atphd_ctrlinfo = ATP_TRESP | ATP_EOM;
        if ( ah.atphd_bitmap != 1 ) {
-           syslog( LOG_ERR, "zip atp bad bitmap" );
+           LOG(log_error, logtype_atalkd, "zip atp bad bitmap" );
            return 1;
        }
        ah.atphd_bitmap = 0;
@@ -763,7 +776,7 @@ int zip_packet( ap, from, data, len )
        data += sizeof( u_short );
        index = ntohs( index );
        if ( data != end ) {
-           syslog( LOG_INFO, "zip atp malformed packet" );
+           LOG(log_info, logtype_atalkd, "zip atp malformed packet" );
            return 1;
        }
 
@@ -780,7 +793,7 @@ int zip_packet( ap, from, data, len )
        switch ( zipop ) {
        case ZIPOP_GETMYZONE :
            if ( index != 0 ) {
-               syslog( LOG_INFO, "zip atp gmz bad index" );
+               LOG(log_info, logtype_atalkd, "zip atp gmz bad index" );
                return 1;
            }
 
@@ -793,12 +806,12 @@ int zip_packet( ap, from, data, len )
                return 0;
            }
 
-           if ( iface->i_rt->rt_zt == 0 ) {
+           if ( iface->i_rt->rt_zt == NULL ) {
                return 0;
            }
            zt = (struct ziptab *)iface->i_rt->rt_zt->l_data;
            if ( data + 1 + zt->zt_len > end ) {
-               syslog( LOG_INFO, "zip atp gmz reply too long" );
+               LOG(log_info, logtype_atalkd, "zip atp gmz reply too long" );
                return 1;
            }
            *data++ = zt->zt_len;
@@ -821,7 +834,7 @@ int zip_packet( ap, from, data, len )
                data += zt->zt_len;
            }
 
-           *lastflag = ( zt == 0 );            /* Too clever? */
+           *lastflag = ( zt == NULL );         /* Too clever? */
            break;
 
        case ZIPOP_GETLOCALZONES :
@@ -847,11 +860,11 @@ int zip_packet( ap, from, data, len )
                data += zt->zt_len;
            }
 
-           *lastflag = ( l == 0 );
+           *lastflag = ( l == NULL );
            break;
 
        default :
-           syslog( LOG_INFO, "zip atp bad option" );
+           LOG(log_info, logtype_atalkd, "zip atp bad option" );
            return 1;
        }
 
@@ -862,15 +875,16 @@ int zip_packet( ap, from, data, len )
            if ( sendto( ap->ap_fd, packet, data - packet, 0,
                    (struct sockaddr *)from,
                    sizeof( struct sockaddr_at )) < 0 ) {
-               syslog( LOG_ERR, "zip atp sendto %u.%u: %m",
-                       ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
+               LOG(log_error, logtype_atalkd, "zip atp sendto %u.%u: %s",
+                       ntohs( from->sat_addr.s_net ), from->sat_addr.s_node,
+                       strerror(errno) );
                return 1;
            }
        }
        break;
 
     default :
-       syslog( LOG_INFO, "zip_packet bad ddp type from %u.%u\n",
+       LOG(log_info, logtype_atalkd, "zip_packet bad ddp type from %u.%u",
                ntohs( from->sat_addr.s_net ), from->sat_addr.s_node );
        return 1;
     }
@@ -878,8 +892,7 @@ int zip_packet( ap, from, data, len )
     return 0;
 }
 
-int zip_getnetinfo( iface )
-    struct interface   *iface;
+int zip_getnetinfo(struct interface *iface)
 {
     struct atport      *ap;
     struct ziphdr      zh;
@@ -887,15 +900,15 @@ int zip_getnetinfo( iface )
     char               *data, packet[ 40 ];
     u_short            net;
 
-    syslog( LOG_INFO, "zip_getnetinfo for %s", iface->i_name );
+    LOG(log_info, logtype_atalkd, "zip_getnetinfo for %s", iface->i_name );
 
     for ( ap = iface->i_ports; ap; ap = ap->ap_next ) {
        if ( ap->ap_packet == zip_packet ) {
            break;
        }
     }
-    if ( ap == 0 ) {
-       syslog( LOG_ERR, "zip_getnetinfo can't find zip socket!" );
+    if ( ap == NULL ) {
+       LOG(log_error, logtype_atalkd, "zip_getnetinfo can't find zip socket!" );
        return -1;
     }
 
@@ -921,7 +934,7 @@ int zip_getnetinfo( iface )
 
 #ifdef BSD4_4
     sat.sat_len = sizeof( struct sockaddr_at );
-#endif BSD4_4
+#endif /* BSD4_4 */
     sat.sat_family = AF_APPLETALK;
     sat.sat_addr.s_net = 0;
     sat.sat_addr.s_node = ATADDR_BCAST;
@@ -929,16 +942,13 @@ int zip_getnetinfo( iface )
 
     if ( sendto( ap->ap_fd, packet, data - packet, 0, (struct sockaddr *)&sat,
            sizeof( struct sockaddr_at )) < 0 ) {
-       syslog( LOG_ERR, "zip_getnetinfo sendto: %m" );
+       LOG(log_error, logtype_atalkd, "zip_getnetinfo sendto: %s", strerror(errno) );
        return -1;
     }
     return 0;
 }
 
-    struct ziptab *
-newzt( len, name )
-    const int          len;
-    const char *name;
+struct ziptab *newzt(const int len, const char *name)
 {
     struct ziptab      *zt;
 
@@ -961,9 +971,7 @@ newzt( len, name )
  * Insert at the end.  Return 1 if a mapping already exists, 0 otherwise.
  * -1 on error.
  */
-static int add_list( head, data )
-    struct list        **head;
-    void       *data;
+static int add_list(struct list **head, void *data)
 {
     struct list        *l, *l2;
 
@@ -973,7 +981,7 @@ static int add_list( head, data )
        }
     }
     if (( l = (struct list *)malloc( sizeof( struct list ))) == NULL ) {
-       syslog( LOG_ERR, "add_list malloc: %m" );
+       LOG(log_error, logtype_atalkd, "add_list malloc: %s", strerror(errno) );
        return -1;
     }
 
@@ -992,10 +1000,7 @@ static int add_list( head, data )
     return( 0 );
 }
 
-int addzone( rt, len, zone )
-    struct rtmptab     *rt;
-    int                        len;
-    char               *zone;
+int addzone(struct rtmptab *rt, int len, char *zone)
 {
     struct ziptab      *zt;
     int                        cc, exists = 0;
@@ -1008,7 +1013,7 @@ int addzone( rt, len, zone )
     }
     if ( zt == NULL ) {
        if (( zt = newzt( len, zone )) == NULL ) {
-           syslog( LOG_ERR, "addzone newzt: %m" );
+           LOG(log_error, logtype_atalkd, "addzone newzt: %s", strerror(errno) );
            return -1;
        }
        if ( ziptab == NULL ) {
@@ -1032,7 +1037,7 @@ int addzone( rt, len, zone )
 
     if (cc) {
         if ( !exists ) {
-           syslog( LOG_ERR, "addzone corrupted route/zone mapping" );
+           LOG(log_error, logtype_atalkd, "addzone corrupted route/zone mapping" );
            return -1;
        }
        /*
@@ -1043,7 +1048,8 @@ int addzone( rt, len, zone )
        return 0;
     }
     if ( exists ) {
-       syslog( LOG_ERR, "addzone corrupted zone/route mapping" );
+       LOG(log_error, logtype_atalkd, "addzone corrupted zone/route mapping" );
        return -1;
     }
+    return 0;
 }