예제 #1
0
파일: resolv.c 프로젝트: 42wim/ipxe
/**
 * Child resolved name
 *
 * @v mux		Name resolution multiplexer
 * @v sa		Completed socket address
 */
static void resmux_child_resolv_done ( struct resolv_mux *mux,
				       struct sockaddr *sa ) {

	DBGC ( mux, "RESOLV %p resolved \"%s\" to %s using method %s\n",
	       mux, mux->name, sock_ntoa ( sa ), mux->resolver->name );

	/* Pass resolution to parent */
	resolv_done ( &mux->parent, sa );
}
예제 #2
0
파일: smtftpd.c 프로젝트: imatix/Xitami-25
MODULE signal_connection_failed (THREAD *thread)
{
    tcb = thread-> tcb;                 /*  Point to thread's context        */

    sendfmt (&operq, "ERROR", "smtftpd: could not connect to %s:%d",
        sock_ntoa (htonl (tcb-> data_host)),
                          tcb-> data_port);

    SEND (&tcb-> reply_to, "FTPD_ERROR", "");
}
예제 #3
0
/**
 * Display ping result
 *
 * @v src		Source socket address, or NULL
 * @v sequence		Sequence number
 * @v len		Payload length
 * @v rc		Status code
 */
static void ping_callback ( struct sockaddr *peer, unsigned int sequence,
			    size_t len, int rc ) {

	/* Display ping response */
	printf ( "%zd bytes from %s: seq=%d",
		 len, ( peer ? sock_ntoa ( peer ) : "<none>" ), sequence );
	if ( rc != 0 )
		printf ( ": %s", strerror ( rc ) );
	printf ( "\n" );
}
예제 #4
0
파일: uri.c 프로젝트: brain0/ipxe
/**
 * Construct TFTP URI from server address and filename
 *
 * @v sa_server		Server address
 * @v filename		Filename
 * @ret uri		URI, or NULL on failure
 */
static struct uri * tftp_uri ( struct sockaddr *sa_server,
                               const char *filename ) {
    struct sockaddr_tcpip *st_server =
        ( ( struct sockaddr_tcpip * ) sa_server );
    char buf[ 6 /* "65535" + NUL */ ];
    char *path;
    struct uri tmp;
    struct uri *uri = NULL;

    /* Initialise TFTP URI */
    memset ( &tmp, 0, sizeof ( tmp ) );
    tmp.scheme = "tftp";

    /* Construct TFTP server address */
    tmp.host = sock_ntoa ( sa_server );
    if ( ! tmp.host )
        goto err_host;

    /* Construct TFTP server port, if applicable */
    if ( st_server->st_port ) {
        snprintf ( buf, sizeof ( buf ), "%d",
                   ntohs ( st_server->st_port ) );
        tmp.port = buf;
    }

    /* Construct TFTP path */
    if ( asprintf ( &path, "/%s", filename ) < 0 )
        goto err_path;
    tmp.path = path;

    /* Demangle URI */
    uri = uri_dup ( &tmp );
    if ( ! uri )
        goto err_uri;

err_uri:
    free ( path );
err_path:
err_host:
    return uri;
}