MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / BindSocket

Function BindSocket

Kernel/src/net/socket.cpp:418–437  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

416 }
417
418 int BindSocket(Socket* sock, const sockaddr* addr, socklen_t addrlen){
419 char* address = (char*)kmalloc(addrlen + 1);
420 strncpy(address, addr->data, addrlen);
421 address[addrlen] = 0;
422
423 for(unsigned i = 0; i < sockets.get_length(); i++){
424 if(strcmp(sockets.get_at(i).address, address) == 0) {
425 kfree(address);
426 return -1; // Address in use
427 }
428 }
429
430 SocketBinding binding;
431 binding.address = address;
432 binding.socket = sock;
433
434 sockets.add_back(binding);
435
436 return 0;
437 }
438
439 void DestroySocket(Socket* sock){
440 for(unsigned i = 0; i < sockets.get_length(); i++){

Callers 1

BindMethod · 0.85

Calls 7

kmallocFunction · 0.85
strncpyFunction · 0.85
strcmpFunction · 0.85
kfreeFunction · 0.85
get_atMethod · 0.80
get_lengthMethod · 0.45
add_backMethod · 0.45

Tested by

no test coverage detected