1--TEST--
2Test if socket_set_option() works, option:SO_BINDTODEVICE
3--DESCRIPTION--
4-Bind to loopback 'lo' device (should exist)
5-Bind to unexisting device
6--SKIPIF--
7<?php
8if (!extension_loaded('sockets')) {
9        die('SKIP sockets extension not available.');
10}
11if (!defined("SO_BINDTODEVICE")) {
12    die('SKIP SO_BINDTODEVICE not supported on this platform.');
13}
14if (!function_exists("posix_getuid") || posix_getuid() != 0) {
15    die('SKIP SO_BINDTODEVICE requires root permissions.');
16}
17?>
18--FILE--
19<?php
20$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
21
22if (!$socket) {
23        die('Unable to create AF_INET socket [socket]');
24}
25// wrong params
26$retval_1 = socket_set_option( $socket, SOL_SOCKET, SO_BINDTODEVICE, "lo");
27var_dump($retval_1);
28$retval_2 = socket_set_option( $socket, SOL_SOCKET, SO_BINDTODEVICE, "ethIDONOTEXIST");
29var_dump($retval_2);
30
31socket_close($socket);
32?>
33--EXPECTF--
34bool(true)
35
36Warning: socket_set_option(): Unable to set socket option [19]: No such device in %s on line %d
37bool(false)
38--CREDITS--
39Damjan Cvetko, foreach.org
40