cifs: set the port in sockaddr in a more clearly defined fashion
This patch should replace the patch I sent a couple of weeks ago to set the port in cifs_convert_address. Currently we set this in cifs_find_tcp_session, but that's more of a side effect than anything. Add a new function called cifs_fill_sockaddr. Have it call cifs_convert_address and then set the port. This also allows us to skip passing in the port as a separate parm to cifs_find_tcp_session. Also, change cifs_convert_address take a struct sockaddr * rather than void * to make it clearer how this function should be called. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:

committed by
Steve French

parent
488f1d2d6c
commit
50d971602a
@@ -164,7 +164,7 @@ cifs_inet_pton(const int address_family, const char *cp, void *dst)
|
||||
* Returns 0 on failure.
|
||||
*/
|
||||
int
|
||||
cifs_convert_address(char *src, void *dst)
|
||||
cifs_convert_address(struct sockaddr *dst, char *src)
|
||||
{
|
||||
int rc;
|
||||
char *pct, *endp;
|
||||
@@ -201,6 +201,27 @@ cifs_convert_address(char *src, void *dst)
|
||||
return rc;
|
||||
}
|
||||
|
||||
int
|
||||
cifs_fill_sockaddr(struct sockaddr *dst, char *src,
|
||||
const unsigned short int port)
|
||||
{
|
||||
if (!cifs_convert_address(dst, src))
|
||||
return 0;
|
||||
|
||||
switch (dst->sa_family) {
|
||||
case AF_INET:
|
||||
((struct sockaddr_in *)dst)->sin_port = htons(port);
|
||||
break;
|
||||
case AF_INET6:
|
||||
((struct sockaddr_in6 *)dst)->sin6_port = htons(port);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
convert a NT status code to a dos class/code
|
||||
*****************************************************************************/
|
||||
|
Reference in New Issue
Block a user