From: Ralf Jung Date: Mon, 16 Sep 2013 14:11:21 +0000 (+0200) Subject: tuerd: Get peer information from socket X-Git-Url: https://git.ralfj.de/saartuer.git/commitdiff_plain/afd14c9b67b6fb41219abf0dcd5e7fda37a1b8a9?ds=inline;hp=-c tuerd: Get peer information from socket --- afd14c9b67b6fb41219abf0dcd5e7fda37a1b8a9 diff --git a/tuerd b/tuerd index 5884d13..f679fa8 100755 --- a/tuerd +++ b/tuerd @@ -1,7 +1,8 @@ #!/usr/bin/python3 -import time, socket, os, stat, atexit, errno +import time, socket, os, stat, atexit, errno, struct from datetime import datetime import RPi.GPIO as GPIO +SO_PEERCRED = 17 # DO - NOT - TOUCH GPIO.setmode(GPIO.BOARD) # ******** definitions ********* @@ -89,7 +90,8 @@ sock.listen(1) while True: # accept connections conn, addr = sock.accept() - # TODO: use addr to determine the client for logging + # get peer information (TODO use it for logging) + (pid, uid, gid) = (struct.unpack('3i', conn.getsockopt(socket.SOL_SOCKET, SO_PEERCRED, struct.calcsize('3i')))) # get some data from the client (enough to hold any valid command) data = conn.recv (32) # log the command