62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
/*++
|
|
/* NAME
|
|
/* inet_util 3
|
|
/* SUMMARY
|
|
/* INET-domain utilities
|
|
/* SYNOPSIS
|
|
/* #include <inet_util.h>
|
|
/*
|
|
/* char *inet_parse(addr, hostp, portp)
|
|
/* const char *addr;
|
|
/* char **hostp;
|
|
/* char **portp;
|
|
/* DESCRIPTION
|
|
/* This module implements various support routines for
|
|
/* dealing with AF_INET connections, addresses etc.
|
|
/*
|
|
/* inet_parse() takes an address of the form host:port and
|
|
/* breaks it up into its constituent parts. The resulting
|
|
/* host information is an empty string when the address
|
|
/* contains no host part or no host: part. inet_parse()
|
|
/* returns a pointer to memory that it has allocated for
|
|
/* string storage. The caller should pass the host to the
|
|
/* myfree() function when the storage is no longer needed.
|
|
/* DIAGNOSTICS
|
|
/* Fatal errors: invalid address or host forms.
|
|
/* LICENSE
|
|
/* .ad
|
|
/* .fi
|
|
/* The Secure Mailer license must be distributed with this software.
|
|
/* AUTHOR(S)
|
|
/* Wietse Venema
|
|
/* IBM T.J. Watson Research
|
|
/* P.O. Box 704
|
|
/* Yorktown Heights, NY 10598, USA
|
|
/*--*/
|
|
|
|
/* System libraries. */
|
|
|
|
#include <sys_defs.h>
|
|
|
|
/* Utility library. */
|
|
|
|
#include "mymalloc.h"
|
|
#include "split_at.h"
|
|
#include "inet_util.h"
|
|
|
|
/* inet_parse - parse host:port address spec */
|
|
|
|
char *inet_parse(const char *addr, char **hostp, char **portp)
|
|
{
|
|
char *buf;
|
|
|
|
buf = mystrdup(addr);
|
|
if ((*portp = split_at_right(buf, ':')) != 0) {
|
|
*hostp = buf;
|
|
} else {
|
|
*portp = buf;
|
|
*hostp = "";
|
|
}
|
|
return (buf);
|
|
}
|