MCPcopy Create free account
hub / github.com/F-Stack/f-stack / getsockname1

Function getsockname1

freebsd/kern/uipc_syscalls.c:1351–1377  ·  view source on GitHub ↗

* getsockname1() - Get socket name. */

Source from the content-addressed store, hash-verified

1349 * getsockname1() - Get socket name.
1350 */
1351static int
1352getsockname1(struct thread *td, struct getsockname_args *uap, int compat)
1353{
1354 struct sockaddr *sa;
1355 socklen_t len;
1356 int error;
1357
1358 error = copyin(uap->alen, &len, sizeof(len));
1359 if (error != 0)
1360 return (error);
1361
1362 error = kern_getsockname(td, uap->fdes, &sa, &len);
1363 if (error != 0)
1364 return (error);
1365
1366 if (len != 0) {
1367#ifdef COMPAT_OLDSOCK
1368 if (compat && SV_PROC_FLAG(td->td_proc, SV_AOUT))
1369 ((struct osockaddr *)sa)->sa_family = sa->sa_family;
1370#endif
1371 error = copyout(sa, uap->asa, (u_int)len);
1372 }
1373 free(sa, M_SONAME);
1374 if (error == 0)
1375 error = copyout(&len, uap->alen, sizeof(len));
1376 return (error);
1377}
1378
1379int
1380kern_getsockname(struct thread *td, int fd, struct sockaddr **sa,

Callers 2

sys_getsocknameFunction · 0.85
ogetsocknameFunction · 0.85

Calls 4

kern_getsocknameFunction · 0.85
freeFunction · 0.70
copyinFunction · 0.50
copyoutFunction · 0.50

Tested by

no test coverage detected