Don't mean to revive an old topic but this isn't answered anywhere easy where I can find it.
Also, whether a node is listening or not is entirely unrelated to whether it forwards transactions or blocks.
So a non-listening node will forward blocks? Even if the user hasn't opened the port?