- if(($dfrn_id === '') && (! x($_POST,'dfrn_id')) && ($a->argc > 1)) {
- logger('dfrn_poll: public feed request from ' . $_SERVER['REMOTE_ADDR'] );
+ if(($dfrn_id === '') && (! x($_POST,'dfrn_id'))) {
+ if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
+ http_status_exit(403);
+ }
+
+ $user = '';
+ if($a->argc > 1) {
+ $r = q("SELECT `hidewall`,`nickname` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1",
+ dbesc($a->argv[1])
+ );
+ if(! $r)
+ http_status_exit(404);
+ if(($r[0]['hidewall']) && (! local_user()))
+ http_status_exit(403);
+ $user = $r[0]['nickname'];
+ }
+
+ logger('dfrn_poll: public feed request from ' . $_SERVER['REMOTE_ADDR'] . ' for ' . $user);