From 6f8043241efd161bc6a73241f783bba5cf60d7eb Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 16 Sep 2012 17:50:47 -0700 Subject: [PATCH] windows.winsock: Add sockaddr>ip. --- basis/windows/winsock/winsock.factor | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/basis/windows/winsock/winsock.factor b/basis/windows/winsock/winsock.factor index 3441569624..d198bf8019 100644 --- a/basis/windows/winsock/winsock.factor +++ b/basis/windows/winsock/winsock.factor @@ -1,9 +1,10 @@ ! Copyright (C) 2006 Mackenzie Straight, Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: alien alien.c-types alien.strings alien.syntax arrays -byte-arrays kernel literals math sequences windows.types -windows.kernel32 windows.errors math.bitwise io.encodings.utf16n -classes.struct windows.com.syntax init ; +USING: accessors alien alien.c-types alien.data alien.strings +alien.syntax arrays byte-arrays classes.struct grouping init +io.encodings.utf16n kernel literals math math.bitwise +math.parser sequences windows.com.syntax windows.errors +windows.kernel32 windows.types ; FROM: alien.c-types => short ; IN: windows.winsock @@ -145,6 +146,14 @@ STRUCT: timeval { sec long } { usec long } ; +GENERIC: sockaddr>ip ( sockaddr -- string ) + +M: sockaddr-in sockaddr>ip ( sockaddr -- string ) + addr>> uint [ number>string ] { } map-as "." join ; + +M: sockaddr-in6 sockaddr>ip ( uchar-array -- string ) + addr>> [ >hex ] { } map-as 2 group [ concat ] map ":" join ; + C-TYPE: fd_set LIBRARY: winsock -- 2.34.1