Various fixes from the previous maintainer.
[packages/xinetd.git] / xinetd / service.c
index 3d68d78..0132d6c 100644 (file)
@@ -745,8 +745,8 @@ static status_e failed_service(struct service *sp,
                return FAILED;
 
             if ( last == NULL ) {
-               last = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
-              SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr *)last;
+           SVC_LAST_DGRAM_ADDR(sp) =  SAIN( calloc( 1, sizeof(union xsockaddr) ) );
+           last = SAIN( SVC_LAST_DGRAM_ADDR(sp) );
             }
 
             (void) time( &current_time ) ;
@@ -772,8 +772,8 @@ static status_e failed_service(struct service *sp,
                return FAILED;
 
            if( last == NULL ) {
-               last = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
-              SVC_LAST_DGRAM_ADDR( sp ) = (union xsockaddr *)last;
+           SVC_LAST_DGRAM_ADDR(sp) = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
+            last = SAIN6(SVC_LAST_DGRAM_ADDR(sp));
             }
 
             (void) time( &current_time ) ;